﻿
using System;
using System.Data.SqlClient;
using System.Globalization;
using System.Runtime.Serialization;
using ProtoBuf;/*https://github.com/ServiceStack/ServiceStack/tree/master/lib*/
using ServiceStack.Text;/*https://github.com/ServiceStack/ServiceStack.Text*/
using V82;
using V82.ОбщиеОбъекты;
using V82.СправочникиСсылка;
using V82.СправочникиОбъект;
using V82.ДокументыСсылка;
using V82.Перечисления;//Ссылка;
namespace V82.СправочникиОбъект
{
	[ProtoContract]
	[DataContract]
	public partial class Номенклатура:СправочникОбъект
	{
		public bool _ЭтоНовый;
		public bool ЭтоНовый()
		{
			return _ЭтоНовый;
		}
		[DataMember]
		[ProtoMember(1)]
		public Guid Ссылка {get;set;}
		[DataMember]
		[ProtoMember(2)]
		public long Версия {get;set;}
		[DataMember]
		[ProtoMember(3)]
		public string ВерсияДанных {get;set;}
		/*static хэш сумма состава и порядка реквизитов*/
		/*версия класса восстановленного из пакета*/
		[DataMember]
		[ProtoMember(4)]
		public bool ПометкаУдаления {get;set;}
		[DataMember]
		[ProtoMember(5)]
		public bool Предопределенный {get;set;}
		[DataMember]
		[ProtoMember(6)]
		public V82.СправочникиСсылка.Номенклатура Родитель {get;set;}
		[DataMember]
		[ProtoMember(7)]
		public bool ЭтоГруппа {get;set;}
		[DataMember]
		[ProtoMember(8)]
		public string/*11*/ Код {get;set;}
		[DataMember]
		[ProtoMember(9)]
		public string/*100*/ Наименование {get;set;}
		///<summary>
		///(Общ) Код производителя
		///</summary>
		[DataMember]
		[ProtoMember(10)]
		public string/*(25)*/ Артикул {get;set;}//Артикул 
		///<summary>
		///(Общ) Полное наименование, например, для печати
		///</summary>
		[DataMember]
		[ProtoMember(11)]
		public string/*(0)*/ НаименованиеПолное {get;set;}//Полное наименование
		[DataMember]
		[ProtoMember(12)]
		public bool Весовой {get;set;}
		///<summary>
		///(Упр)
		///</summary>
		[DataMember]
		[ProtoMember(13)]
		public decimal/*(10)*/ ВесовойКоэффициентВхождения {get;set;}//Весовой коэффициент вхождения
		///<summary>
		///(Упр)
		///</summary>
		[DataMember]
		[ProtoMember(14)]
		public bool ВестиОперативныйУчетОстатковНЗП {get;set;}//Вести оперативный учет остатков НЗП
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(15)]
		public bool ВестиПартионныйУчетПоСериям {get;set;}//Вести партионный учет по сериям
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(16)]
		public bool ВестиУчетПоСериям {get;set;}//Вести учет по сериям
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(17)]
		public bool ВестиУчетПоСериямВНЗП {get;set;}//Вести учет по сериям в НЗП
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(18)]
		public bool ВестиУчетПоХарактеристикам {get;set;}//Вести учет по характеристикам
		///<summary>
		///(Упр)
		///</summary>
		[DataMember]
		[ProtoMember(19)]
		public V82.Перечисления/*Ссылка*/.ВидыВоспроизводстваНоменклатуры ВидВоспроизводства {get;set;}//Вид воспроизводства
		[DataMember]
		[ProtoMember(20)]
		public V82.СправочникиСсылка.ВидыНоменклатуры ВидНоменклатуры {get;set;}//Вид номенклатуры
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(21)]
		public V82.СправочникиСсылка.ЕдиницыИзмерения ЕдиницаДляОтчетов {get;set;}//Единица для отчетов
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(22)]
		public V82.СправочникиСсылка.ЕдиницыИзмерения ЕдиницаХраненияОстатков {get;set;}//Единица хранения остатков
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(23)]
		public V82.СправочникиСсылка.КлассификаторЕдиницИзмерения БазоваяЕдиницаИзмерения {get;set;}//Базовая единица измерения
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(24)]
		public bool Набор {get;set;}
		[DataMember]
		[ProtoMember(25)]
		public V82.СправочникиСсылка.НазначенияИспользования НазначениеИспользования {get;set;}//Назначение использования
		///<summary>
		///(Общ) Ставка НДС по умолчанию для оформления документов
		///</summary>
		[DataMember]
		[ProtoMember(26)]
		public V82.Перечисления/*Ссылка*/.СтавкиНДС СтавкаНДС {get;set;}//Ставка НДС
		///<summary>
		///(Общ) Любая дополнительная информация
		///</summary>
		[DataMember]
		[ProtoMember(27)]
		public string/*(0)*/ Комментарий {get;set;}
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(28)]
		public V82.СправочникиСсылка.НоменклатурныеГруппы НоменклатурнаяГруппаЗатрат {get;set;}//Номенклатурная группа затрат
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(29)]
		public bool Услуга {get;set;}
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(30)]
		public V82.СправочникиСсылка.ХранилищеДополнительнойИнформации ОсновноеИзображение {get;set;}//Основное изображение
		///<summary>
		///(Упр)
		///</summary>
		[DataMember]
		[ProtoMember(31)]
		public V82.СправочникиСсылка.Контрагенты ОсновнойПоставщик {get;set;}//Основной поставщик
		///<summary>
		///(Упр)
		///</summary>
		[DataMember]
		[ProtoMember(32)]
		public V82.СправочникиСсылка.Пользователи ОтветственныйМенеджерЗаПокупки {get;set;}//Ответственный менеджер за покупки
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(33)]
		public V82.СправочникиСсылка.НоменклатурныеГруппы НоменклатурнаяГруппа {get;set;}//Номенклатурная группа
		///<summary>
		///(Регл)
		///</summary>
		[DataMember]
		[ProtoMember(34)]
		public V82.СправочникиСсылка.КлассификаторСтранМира СтранаПроисхождения {get;set;}//Страна происхождения
		///<summary>
		///(Регл) Номер ГТД по умолчанию
		///</summary>
		[DataMember]
		[ProtoMember(35)]
		public V82.СправочникиСсылка.НомераГТД НомерГТД {get;set;}//Номер ГТД
		[DataMember]
		[ProtoMember(36)]
		public bool ТребуетсяВнешняяСертификация {get;set;}//Требуется внешняя сертификация
		[DataMember]
		[ProtoMember(37)]
		public bool ТребуетсяВнутренняяСертификация {get;set;}//Требуется внутренняя сертификация
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(38)]
		public V82.СправочникиСсылка.СтатьиЗатрат СтатьяЗатрат {get;set;}//Статья затрат
		[DataMember]
		[ProtoMember(39)]
		public bool ВестиСерийныеНомера {get;set;}//Вести серийные номера
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(40)]
		public bool Комплект {get;set;}
		[DataMember]
		[ProtoMember(41)]
		public V82.Перечисления/*Ссылка*/.НаправленияВыпуска НаправлениеВыпуска {get;set;}//Направление выпуска
		[DataMember]
		[ProtoMember(42)]
		public V82.СправочникиСсылка.НаправленияСписанияВыпущеннойПродукции НаправлениеСписанияВыпущеннойПродукции {get;set;}//Направление списания выпущенной продукции
		[DataMember]
		[ProtoMember(43)]
		public V82.СправочникиСсылка.ПорядокПрисвоенияСерийныхНомеров ПорядокПрисвоенияСерийногоНомера {get;set;}//Порядок присвоения серийного номера
		[DataMember]
		[ProtoMember(44)]
		public V82.СправочникиСсылка.ЦеновыеГруппы ЦеноваяГруппа {get;set;}//Ценовая группа
		///<summary>
		///Общероссийский классификатор продукции
		///</summary>
		[DataMember]
		[ProtoMember(45)]
		public V82.СправочникиСсылка.ОбщероссийскийКлассификаторПродукции ОКП {get;set;}
		///<summary>
		///(Общ)
		///</summary>
		[DataMember]
		[ProtoMember(46)]
		public V82.СправочникиСсылка.ЕдиницыИзмерения ЕдиницаИзмеренияМест {get;set;}//Единица измерения мест
		[DataMember]
		[ProtoMember(47)]
		public string/*(0)*/ ДополнительноеОписаниеНоменклатуры {get;set;}//Дополнительное описание
		[DataMember]
		[ProtoMember(48)]
		public V82.СправочникиСсылка.Контрагенты Производитель {get;set;}
		[DataMember]
		[ProtoMember(49)]
		public V82.СправочникиСсылка.Контрагенты Импортер {get;set;}
		public void Записать()
		{
			//Установка блокировки элемента на горизантально масштабированный кластер.
			//Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
			//Выделение сервиса для блокировки элемента и генерации кода
			//Выполнение операций контроля без обращений к sql-серверу.
			//Контроль конфликта блокировок.
			//Контроль загрузки булкинсертом гетерогенной коллекции.
			//Контроль уникальности кода для справочников.
			//Контроль уникальности номера для документов, в границах префикса.
			//Контроль владельца, он не может быть группой.
			//Контроль владельца он должен быть задан.
			//Контроль родителя он должен быть группой.
			//Контроль количества уровней, должен соотвествовать метаданным.
			//Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
			//Контроль уникальности ссылки
			//Контроль зацикливания
			//Опционально контроль битых ссылок.
			//Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					if(_ЭтоНовый)
					{
						Команда.CommandText = @"
						Insert Into _Reference95(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_ParentIDRRef
						,_Folder
						,_Code
						,_Description
						,_Fld1421
						,_Fld1437
						,_Fld1423
						,_Fld1424
						,_Fld1425
						,_Fld1426
						,_Fld1427
						,_Fld1428
						,_Fld1429
						,_Fld1430RRef
						,_Fld1431RRef
						,_Fld1432RRef
						,_Fld1433RRef
						,_Fld1422RRef
						,_Fld1435
						,_Fld1436RRef
						,_Fld1444RRef
						,_Fld1434
						,_Fld1439RRef
						,_Fld1449
						,_Fld1441RRef
						,_Fld1442RRef
						,_Fld1443RRef
						,_Fld1438RRef
						,_Fld1446RRef
						,_Fld1440RRef
						,_Fld1447
						,_Fld1448
						,_Fld1445RRef
						,_Fld1450
						,_Fld1451
						,_Fld1452RRef
						,_Fld1453RRef
						,_Fld1454RRef
						,_Fld1455RRef
						,_Fld1456RRef
						,_Fld18593RRef
						,_Fld22975
						,_Fld26548RRef
						,_Fld26549RRef)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Предопределенный
						,@Родитель
						,@ЭтоГруппа
						,@Код
						,@Наименование
						,@Артикул
						,@НаименованиеПолное
						,@Весовой
						,@ВесовойКоэффициентВхождения
						,@ВестиОперативныйУчетОстатковНЗП
						,@ВестиПартионныйУчетПоСериям
						,@ВестиУчетПоСериям
						,@ВестиУчетПоСериямВНЗП
						,@ВестиУчетПоХарактеристикам
						,@ВидВоспроизводства
						,@ВидНоменклатуры
						,@ЕдиницаДляОтчетов
						,@ЕдиницаХраненияОстатков
						,@БазоваяЕдиницаИзмерения
						,@Набор
						,@НазначениеИспользования
						,@СтавкаНДС
						,@Комментарий
						,@НоменклатурнаяГруппаЗатрат
						,@Услуга
						,@ОсновноеИзображение
						,@ОсновнойПоставщик
						,@ОтветственныйМенеджерЗаПокупки
						,@НоменклатурнаяГруппа
						,@СтранаПроисхождения
						,@НомерГТД
						,@ТребуетсяВнешняяСертификация
						,@ТребуетсяВнутренняяСертификация
						,@СтатьяЗатрат
						,@ВестиСерийныеНомера
						,@Комплект
						,@НаправлениеВыпуска
						,@НаправлениеСписанияВыпущеннойПродукции
						,@ПорядокПрисвоенияСерийногоНомера
						,@ЦеноваяГруппа
						,@ОКП
						,@ЕдиницаИзмеренияМест
						,@ДополнительноеОписаниеНоменклатуры
						,@Производитель
						,@Импортер)";
					}
					else
					{
						Команда.CommandText = @"
						Update _Reference95
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_IsMetadata	= @Предопределенный
						,_ParentIDRRef	= @Родитель
						,_Folder	= @ЭтоГруппа
						,_Code	= @Код
						,_Description	= @Наименование
						,_Fld1421	= @Артикул
						,_Fld1437	= @НаименованиеПолное
						,_Fld1423	= @Весовой
						,_Fld1424	= @ВесовойКоэффициентВхождения
						,_Fld1425	= @ВестиОперативныйУчетОстатковНЗП
						,_Fld1426	= @ВестиПартионныйУчетПоСериям
						,_Fld1427	= @ВестиУчетПоСериям
						,_Fld1428	= @ВестиУчетПоСериямВНЗП
						,_Fld1429	= @ВестиУчетПоХарактеристикам
						,_Fld1430RRef	= @ВидВоспроизводства
						,_Fld1431RRef	= @ВидНоменклатуры
						,_Fld1432RRef	= @ЕдиницаДляОтчетов
						,_Fld1433RRef	= @ЕдиницаХраненияОстатков
						,_Fld1422RRef	= @БазоваяЕдиницаИзмерения
						,_Fld1435	= @Набор
						,_Fld1436RRef	= @НазначениеИспользования
						,_Fld1444RRef	= @СтавкаНДС
						,_Fld1434	= @Комментарий
						,_Fld1439RRef	= @НоменклатурнаяГруппаЗатрат
						,_Fld1449	= @Услуга
						,_Fld1441RRef	= @ОсновноеИзображение
						,_Fld1442RRef	= @ОсновнойПоставщик
						,_Fld1443RRef	= @ОтветственныйМенеджерЗаПокупки
						,_Fld1438RRef	= @НоменклатурнаяГруппа
						,_Fld1446RRef	= @СтранаПроисхождения
						,_Fld1440RRef	= @НомерГТД
						,_Fld1447	= @ТребуетсяВнешняяСертификация
						,_Fld1448	= @ТребуетсяВнутренняяСертификация
						,_Fld1445RRef	= @СтатьяЗатрат
						,_Fld1450	= @ВестиСерийныеНомера
						,_Fld1451	= @Комплект
						,_Fld1452RRef	= @НаправлениеВыпуска
						,_Fld1453RRef	= @НаправлениеСписанияВыпущеннойПродукции
						,_Fld1454RRef	= @ПорядокПрисвоенияСерийногоНомера
						,_Fld1455RRef	= @ЦеноваяГруппа
						,_Fld1456RRef	= @ОКП
						,_Fld18593RRef	= @ЕдиницаИзмеренияМест
						,_Fld22975	= @ДополнительноеОписаниеНоменклатуры
						,_Fld26548RRef	= @Производитель
						,_Fld26549RRef	= @Импортер
						Where _IDRRef = @Ссылка";
					}
					Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray());
					/*Команда.Parameters.AddWithValue("Версия", Версия);*/
					Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления);
					Команда.Parameters.AddWithValue("Предопределенный", Предопределенный);
					Команда.Parameters.AddWithValue("Родитель", Родитель);
					Команда.Parameters.AddWithValue("ЭтоГруппа", ЭтоГруппа?new byte[]{0}:new byte[]{1});
					Команда.Parameters.AddWithValue("Код", Код);
					Команда.Parameters.AddWithValue("Наименование", Наименование);
					Команда.Parameters.AddWithValue("Артикул", Артикул);
					Команда.Parameters.AddWithValue("НаименованиеПолное", НаименованиеПолное);
					Команда.Parameters.AddWithValue("Весовой", Весовой);
					Команда.Parameters.AddWithValue("ВесовойКоэффициентВхождения", ВесовойКоэффициентВхождения);
					Команда.Parameters.AddWithValue("ВестиОперативныйУчетОстатковНЗП", ВестиОперативныйУчетОстатковНЗП);
					Команда.Parameters.AddWithValue("ВестиПартионныйУчетПоСериям", ВестиПартионныйУчетПоСериям);
					Команда.Parameters.AddWithValue("ВестиУчетПоСериям", ВестиУчетПоСериям);
					Команда.Parameters.AddWithValue("ВестиУчетПоСериямВНЗП", ВестиУчетПоСериямВНЗП);
					Команда.Parameters.AddWithValue("ВестиУчетПоХарактеристикам", ВестиУчетПоХарактеристикам);
					Команда.Parameters.AddWithValue("ВидВоспроизводства", ВидВоспроизводства.Ключ());
					Команда.Parameters.AddWithValue("ВидНоменклатуры", ВидНоменклатуры.Ссылка);
					Команда.Parameters.AddWithValue("ЕдиницаДляОтчетов", ЕдиницаДляОтчетов.Ссылка);
					Команда.Parameters.AddWithValue("ЕдиницаХраненияОстатков", ЕдиницаХраненияОстатков.Ссылка);
					Команда.Parameters.AddWithValue("БазоваяЕдиницаИзмерения", БазоваяЕдиницаИзмерения.Ссылка);
					Команда.Parameters.AddWithValue("Набор", Набор);
					Команда.Parameters.AddWithValue("НазначениеИспользования", НазначениеИспользования.Ссылка);
					Команда.Parameters.AddWithValue("СтавкаНДС", СтавкаНДС.Ключ());
					Команда.Parameters.AddWithValue("Комментарий", Комментарий);
					Команда.Parameters.AddWithValue("НоменклатурнаяГруппаЗатрат", НоменклатурнаяГруппаЗатрат.Ссылка);
					Команда.Parameters.AddWithValue("Услуга", Услуга);
					Команда.Parameters.AddWithValue("ОсновноеИзображение", ОсновноеИзображение.Ссылка);
					Команда.Parameters.AddWithValue("ОсновнойПоставщик", ОсновнойПоставщик.Ссылка);
					Команда.Parameters.AddWithValue("ОтветственныйМенеджерЗаПокупки", ОтветственныйМенеджерЗаПокупки.Ссылка);
					Команда.Parameters.AddWithValue("НоменклатурнаяГруппа", НоменклатурнаяГруппа.Ссылка);
					Команда.Parameters.AddWithValue("СтранаПроисхождения", СтранаПроисхождения.Ссылка);
					Команда.Parameters.AddWithValue("НомерГТД", НомерГТД.Ссылка);
					Команда.Parameters.AddWithValue("ТребуетсяВнешняяСертификация", ТребуетсяВнешняяСертификация);
					Команда.Parameters.AddWithValue("ТребуетсяВнутренняяСертификация", ТребуетсяВнутренняяСертификация);
					Команда.Parameters.AddWithValue("СтатьяЗатрат", СтатьяЗатрат.Ссылка);
					Команда.Parameters.AddWithValue("ВестиСерийныеНомера", ВестиСерийныеНомера);
					Команда.Parameters.AddWithValue("Комплект", Комплект);
					Команда.Parameters.AddWithValue("НаправлениеВыпуска", НаправлениеВыпуска.Ключ());
					Команда.Parameters.AddWithValue("НаправлениеСписанияВыпущеннойПродукции", НаправлениеСписанияВыпущеннойПродукции.Ссылка);
					Команда.Parameters.AddWithValue("ПорядокПрисвоенияСерийногоНомера", ПорядокПрисвоенияСерийногоНомера.Ссылка);
					Команда.Parameters.AddWithValue("ЦеноваяГруппа", ЦеноваяГруппа.Ссылка);
					Команда.Parameters.AddWithValue("ОКП", ОКП.Ссылка);
					Команда.Parameters.AddWithValue("ЕдиницаИзмеренияМест", ЕдиницаИзмеренияМест.Ссылка);
					Команда.Parameters.AddWithValue("ДополнительноеОписаниеНоменклатуры", ДополнительноеОписаниеНоменклатуры);
					Команда.Parameters.AddWithValue("Производитель", Производитель.Ссылка);
					Команда.Parameters.AddWithValue("Импортер", Импортер.Ссылка);
					Команда.ExecuteNonQuery();
				}
			}
		}
		public void Удалить()
		{
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					Команда.CommandText = @"Delete _Reference95
					Where _IDRRef=@Ссылка";
					Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray());
					Команда.ExecuteNonQuery();
				}
			}
		}
		/*МодульОбъекта*/

		public void ОбработкаПроверкиЗаполнения(/*Отказ, ПроверяемыеРеквизиты*/)
		{
			if(true/*ОбменДанными.Загрузка*/)
			{
			}
			if(true/*мЭтоНеНовый = Неопределено*/)
			{
				//мЭтоНеНовый = Не ЭтоНовый();
			}
			if(true/*НЕ ЭтоГруппа*/)
			{
				/*//Для элемента требуется проверять заполнение реквизита ВидНоменклатуры
*/
				//ПроверяемыеРеквизиты.Добавить("ВидНоменклатуры");
			}
			if(true/*(ВидНоменклатуры.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга)*/)
			{
				/*// Базовая единица может быть не заполнена
*/
				//НомерУдаляемогоЭлемента = ПроверяемыеРеквизиты.Найти("БазоваяЕдиницаИзмерения");
				if(true/*НомерУдаляемогоЭлемента <> Неопределено*/)
				{
					//ПроверяемыеРеквизиты.Удалить(НомерУдаляемогоЭлемента);
				}
			}
			/*// Надо проверить владельца единицы хранения остатков.
*/
			if(true/*ЗначениеЗаполнено(ЕдиницаХраненияОстатков)
		И ЕдиницаХраненияОстатков.Владелец <> Ссылка*/)
			{
				//ТекстСообщения = НСтр("ru = 'Неверно указан владелец единицы хранения остатков!'");
				//ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "ЕдиницаХраненияОстатков",, Отказ);
			}
			/*// Надо проверить владельца единицы для отчетов.
*/
			if(true/*ЗначениеЗаполнено(ЕдиницаДляОтчетов)
		И ЕдиницаДляОтчетов.Владелец <> Ссылка*/)
			{
				//ТекстСообщения = НСтр("ru = 'Неверно указан владелец единицы для отчетов!'");
				//ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "ЕдиницаДляОтчетов",, Отказ);
			}
			if(true/*мЭтоНеНовый И НЕ ЭтоГруппа*/)
			{
				//СуществуютСсылки = Неопределено;
				if(true/*(ВидНоменклатуры.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.Услуга)
			И Ссылка.ЕдиницаХраненияОстатков <> ЕдиницаХраненияОстатков 
			И ПолныеПрава.Номенклатура_СуществуютСсылки(Ссылка, СуществуютСсылки)*/)
				{
					/*ТекстСообщения = НСтр("ru = 'Номенклатура уже участвует в товародвижении. 
                             |Изменить единицу хранения остатков уже нельзя!'");*/
					//ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "ЕдиницаХраненияОстатков",, Отказ);
				}
				if(true/*ВидНоменклатуры.ТипНоменклатуры <> Ссылка.ВидНоменклатуры.ТипНоменклатуры
			И ПолныеПрава.Номенклатура_СуществуютСсылки(Ссылка, СуществуютСсылки)*/)
				{
					/*ТекстСообщения = НСтр("ru = 'Номенклатура уже участвует в товародвижении. 
                             |Тип номенклатуры не может быть изменен'");*/
					//ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "ВидНоменклатуры",, Отказ);
				}
				if(true/*Не ВестиУчетПоСериям И Ссылка.ВестиУчетПоСериям И ПолныеПрава.Номенклатура_СуществуютСсылкиНаСерииВРегистрахНакопления(Ссылка)*/)
				{
					/*ТекстСообщения = НСтр("ru = 'Номенклатура уже участвует в товародвижении. 
                             |Признак ""Вести учет по сериям"" не может быть изменен!'");*/
					//ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "ВестиУчетПоСериям",, Отказ);
				}
			}
		}
		// Обработчик события элемента ПриКопировании.
		//

		public void ПриКопировании(/*ОбъектКопирования*/)
		{
			if(true/*Не ЭтоГруппа*/)
			{
				//ЕдиницаХраненияОстатков = Неопределено;
				//ЕдиницаДляОтчетов       = Неопределено;
				//ЕдиницаИзмеренияМест    = Неопределено;
				//ОсновноеИзображение     = Неопределено;
				//НазначениеИспользования = Неопределено;
			}
		}
		// ПриКопировании()

		public void ПередЗаписью(/*Отказ*/)
		{
			if(true/*ОбменДанными.Загрузка*/)
			{
			}
			if(true/*ЭтоГруппа*/)
			{
				//ПрошлыйИзмененныйРодительОбъектаДоступа = ?(Не ЭтоНовый() и Не Ссылка.Родитель = Родитель, Ссылка.Родитель, Неопределено);
				//НастройкаПравДоступа.ПередЗаписьюНовогоОбъектаСПравамиДоступаПользователей(ЭтотОбъект, Отказ, Родитель);
			}
		}
		// ПередЗаписью()

		public void ПриЗаписи(/*Отказ*/)
		{
			if(true/*НЕ ОбменДанными.Загрузка*/)
			{
				//НастройкаПравДоступа.ОбновитьПраваДоступаКИерархическимОбъектамПриНеобходимости(Ссылка,ПрошлыйИзмененныйРодительОбъектаДоступа, Отказ);
			}
		}
	}
}